package models

type GeneratorTable struct {
	Id            *int               `json:"id" gorm:"primary_key;auto_increment"`
	CreateTime    *LocalTime         `json:"createTime" gorm:"type:timestamp;autoCreateTime"`
	UpdateTime    *LocalTime         `json:"updateTime" gorm:"type:datetime;autoUpdateTime"`
	CreateBy      *int               `json:"createBy"`
	DelBy         *int               `json:"delBy"`
	Del           *bool              `json:"del"`
	Remark        *string            `json:"remark"`
	TabName       *string            `json:"tableName" gorm:"unique;column:table_name"` //表名
	StructName    *string            `json:"structName" gorm:"unique"`                  //结构体名
	CommentName   *string            `json:"commentName" gorm:"comment_name"`           //备注名
	BatchDelete   bool               `json:"batchDelete" gorm:"batch_delete"`           //是否开启批处理删除
	BatchInsert   bool               `json:"batchInsert" gorm:"batch_insert"`           //是否开启批处理插入
	OperationByMe bool               `json:"operationByMe" gorm:"operation_by_me"`      //是否开启批只能操作自己的数据
	Columns       []GeneratorColumns `json:"columns"`                                   //字段列表
}

func (g *GeneratorTable) TableName() string {
	return "generator_table"
}

// GeneratorColumns 生成字段信息
type GeneratorColumns struct {
	Id               int    `json:"id" gorm:"primary_key;auto_increment"`
	GeneratorTableId *int   `json:"generatorTableId"` //表ID
	ColumnName       string `json:"columnName"`       //字段名
	SqlType          string `json:"sqlType"`          //sqL类型
	Title            string `json:"title"`            //标题名称
	StructType       string `json:"structType"`       //结构体类型
	Search           bool   `json:"search"`           //是否搜索
	Edit             bool   `json:"edit"`             //是否编辑
	EditComponent    string `json:"editComponent"`    //编辑组件
	DataSource       string `json:"dataSource"`       //编辑组件为下拉框则可以选择数据源
	DataSourceKey    string `json:"dataSourceKey"`    //编辑组件为下拉框则可以从cache中获取
	Show             bool   `json:"show"`             //是否显示
	Condition        string `json:"condition"`        //查询条件
	Required         bool   `json:"required"`         //是否必填
	ExportImport     bool   `json:"exportImport"`     //是否导入导出
	Weight           int    `json:"weight"`           //权重顺序
}

func (g *GeneratorColumns) TableName() string {
	return "generator_columns"
}

func init() {
	//registerContainer["generator_table"] = &GeneratorTable{}
	registerContainer = append(registerContainer, &GeneratorTable{})
	//registerContainer["generator_columns"] = &GeneratorColumns{}
	registerContainer = append(registerContainer, &GeneratorColumns{})
}
